#include<bits/stdc++.h>
using namespace std;
long long a, b, d, k, x;
int T;
int main() {
for(scanf("%d", &T); T --; ) {
k = 1, x = 0;
scanf("%lld%lld%lld", &a, &b, &d);
int f = 0;
for(; d % 2 == 0; a >>= 1, b >>= 1, d >>= 1, k <<= 1) {
if((a & 1) || (b & 1)) {
f = 1;
break;
}
}
if(f) {
puts("-1");
continue;
}
for(int i = 0; i < 30; ++ i)
if(!(x >> i & 1))
x += (1ll << i) * d;
printf("%lld\n",x * k);
}
}
1366A - Shovels and Swords | 919A - Supermarket |
630C - Lucky Numbers | 1208B - Uniqueness |
1384A - Common Prefixes | 371A - K-Periodic Array |
1542A - Odd Set | 1567B - MEXor Mixup |
669A - Little Artem and Presents | 691B - s-palindrome |
851A - Arpa and a research in Mexican wave | 811A - Vladik and Courtesy |
1006B - Polycarp's Practice | 1422A - Fence |
21D - Traveling Graph | 1559B - Mocha and Red and Blue |
1579C - Ticks | 268B - Buttons |
898A - Rounding | 1372B - Omkar and Last Class of Math |
1025D - Recovering BST | 439A - Devu the Singer and Churu the Joker |
1323A - Even Subset Sum Problem | 1095A - Repeating Cipher |
630F - Selection of Personnel | 630K - Indivisibility |
20B - Equation | 600B - Queries about less or equal elements |
1015A - Points in Segments | 1593B - Make it Divisible by 25 |